package com.tbit.main.dao.core;

import com.tbit.main.pojo.Camera;
import com.tbit.main.pojo.MachineFunction;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author LMY
 * @create 2022-02-25 14:02
 */
public interface MachineFunctionDao {

    /**
     * 根据车辆id和类型查询
     *
     * @param map
     * @return
     */
    MachineFunction getMachineIdType(Map<String, Object> map);

    /**
     * 根据车辆id和类型查询
     *
     * @return
     */
    MachineFunction getMachineIdHelmet(Integer machineId);

    /**
     * 根据车辆ids和类型查询
     *
     * @param map
     * @return
     */
    List<MachineFunction> getMachineIdsType(Map<String, Object> map);

    /**
     * 根据类型查询
     *
     * @param type
     * @return
     */
    List<Integer> getType(String type);

    /**
     * 添加
     *
     * @param map
     */
    void add(Map<String, Object> map);

    /**
     * 添加
     *
     * @param map
     */
    void addBatch(List<Map<String, Object>> map);

    /**
     * 删除
     *
     * @param map
     */
    void del(Map<String, Object> map);

    /**
     * 删除
     *
     * @param machineId
     */
    void delId(Integer machineId);

    void closeMachineId(Map<String, Object> map);

    /**
     * 根据车辆id查询
     *
     * @param machineId
     * @return
     */
    List<MachineFunction> getMachineId(Integer machineId);

    /**
     * 批量绑定功能
     * @param functions 功能集合
     */
    void bachAddFunction(@Param("functions") List<MachineFunction> functions);

    /**
     * 批量增加摄像头功能
     * @param cameraList 摄像头集合
     */
    void addCameraBatch(@Param("cameraList") List<Camera> cameraList);
}
